home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / language / embedded / m68k / fbug68k.arc / SD.C < prev    next >
C/C++ Source or Header  |  1989-08-17  |  2KB  |  101 lines

  1. #include "userdef.h"
  2.  
  3. /* *************************************************************** */
  4.  
  5. sdcmd(argc,argv)
  6. int argc;
  7. char *argv;
  8. {
  9. int i,j;
  10. extern int error;
  11. extern struct symbelem symb[];
  12.  
  13.     switch (argc)
  14.     {
  15.         case 1:
  16.             print(SYMBMSG);
  17.             for (i = 0; i < MAXSYMBOL;i++)
  18.                 if (symb[i].name[0] == SYMBOLDEL)
  19.                 {
  20.                     print(symb[i].name);
  21.                     print("\t%c%8x\n",HEXDEL,symb[i].value);
  22.                 }
  23.             break;
  24.         case 2:
  25.             print(SYMBMSG);
  26.             for (i = 0; i < MAXSYMBOL;i++)
  27.             {
  28.                 for (j = 0; j < MAXSYMBLEN; j++)
  29.                 {
  30.                     if (whitesp(argv[j]) || symb[i].name[j] !=  argv[j])
  31.                         break;
  32.                 }
  33.                 if (whitesp(argv[j]) && argv[j] == symb[i].name[j])
  34.                 {
  35.                     print(symb[i].name);
  36.                     print("\t%c%8x\n",HEXDEL,symb[i].value);
  37.                     break;
  38.                 }
  39.             }
  40.             break;
  41.         case 3:
  42.             striparg(argv);
  43.             if (argv[0] == OPTDEL && argv[1] == 'r')
  44.             {
  45.                 striparg(argv);
  46.                 if (argv[0] == SYMBOLDEL && !whitesp(argv[1]))
  47.                 {
  48.                     for (i = 0; i < MAXSYMBOL; i++)
  49.                     {
  50.                         for (j = 0; j < MAXSYMBLEN; j++)
  51.                         {
  52.                             if (whitesp(argv[j]) || symb[i].name[j] !=  argv[j])
  53.                                 break;
  54.                         }
  55.                         if (whitesp(argv[j]) && argv[j] == symb[i].name[j])
  56.                         {
  57.                             symb[i].name[0] = ' ';
  58.                             symb[i].value = 0;
  59.                             break;
  60.                         }
  61.                     }
  62.                     if (i == MAXSYMBOL)
  63.                         print(UNKNOWNMSG);
  64.                 }
  65.             }
  66.             else if (argv[0] == SYMBOLDEL)
  67.             {
  68.                 for (i = 0; i < MAXSYMBOL; i++)
  69.                     if (symb[i].name[0] != SYMBOLDEL)
  70.                     {
  71.                         for (j=0;!whitesp(argv[j]);j++)
  72.                             symb[i].name[j] = argv[j];
  73.                         symb[i].name[j] = ENDSTR;
  74.                         striparg(argv);
  75.                         symb[i].value = getnum(argv,ERR01,DEFAULTSCALE);
  76.                         if (error)
  77.                         {
  78.                             symb[i].name[0] = 'X';
  79.                             symb[i].value = 0;
  80.                         }
  81.                         break;
  82.                     }
  83.                 if (i == MAXSYMBOL)
  84.                     print("Symbol table full.\n");
  85.             }
  86.             print(SYMBMSG);
  87.             for (i = 0; i < MAXSYMBOL;i++)
  88.                 if (symb[i].name[0] == SYMBOLDEL)
  89.                 {
  90.                     print(symb[i].name);
  91.                     print("\t%c%8x\n",HEXDEL,symb[i].value);
  92.                 }
  93.             break;
  94.         default:
  95.             print(ERR01);
  96.     }
  97. }
  98.     
  99. /* ************************************************************ */
  100.     
  101.